package com.ruoyi.web.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.web.domain.WorkForm;
import com.ruoyi.web.domain.dto.FormExportFilterDto;
import com.ruoyi.web.domain.vo.*;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 工单表 Mapper 接口
 * </p>
 *
 * @author
 * @since 2025-03-10
 */
public interface WorkFormMapper extends BaseMapper<WorkForm> {

    HistogramVo selectAppealTypesCount(@Param("province") String province, @Param("city") String city, @Param("county") String county);

    List<PieChartVo> selectServiceGradesCount(@Param("province") String province, @Param("city") String city, @Param("county") String county);

    Map<String, Object> selectCounts(@Param("province") String province, @Param("city") String city, @Param("county") String county);

    List<PieChartVo> selectServiceStatesCount(@Param("province") String province, @Param("city") String city, @Param("county") String county);

    List<PieChartVo> selectEnterpriseSatisfactionRatio(@Param("province") String province, @Param("city") String city, @Param("county") String county);

    HistogramVo selectCitiesAppealQuantityCount(@Param("province") String province, @Param("city") String city, @Param("county") String county);

    String queryCompanyProp(@Param("companyName")String companyName);

    FormDealVo formCount(@Param("dto") FormExportFilterDto dto);

    List<FormTypeCountVo> formTypeCount(@Param("dto") FormExportFilterDto dto);

    List<FormDealFeedBackPielVo> formCountPieChart(@Param("dto") FormExportFilterDto dto);

    List<FormCityCountVo> formCitiesCount(@Param("dto") FormExportFilterDto dto);

    Map<String, Long> selectDataStatistics();

    int isDuplicatedWorkForm(@Param("param") String param);
}
